package com.nnnu.orange.service;

import com.nnnu.orange.pojo.dto.CategoriesQueryDto;
import com.nnnu.orange.pojo.dto.CategoryDto;
import com.nnnu.orange.pojo.entity.Categories;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nnnu.orange.result.PageResult;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 存储图书类别信息 服务类
 * </p>
 *
 * @author zk
 * @since 2024-11-07
 */
public interface ICategoriesService extends IService<Categories> {
    /**
     * 新增图书分类
     *
     * @param categoryDto 图书分类 DTO 对象
     */
    void save(CategoryDto categoryDto);

    /**
     * 修改图书分类
     *
     * @param categoryDto 图书分类dto
     */
    void update(CategoryDto categoryDto);


    /**
     * 分页获取图书分类列表
     *
     * @param queryDto dto
     * @return 分页后的dto
     */
    PageResult<Categories> list(CategoriesQueryDto queryDto);

    /**
     * 批量删除图书分类
     *
     * @param ids 分类ids
     */
    Boolean deleteBatch(List<Integer> ids);

    /**
     * 统计每个分类下的图书数量
     *
     * @return 分类统计列表
     */
    Map<String, Long> getCategoryStatistics();
}
